from JianDaoShiTouBu import JianDaoShiTouBu
from BanZi import BanZi
from DingZi import DingZi

import Game

#这是游戏控制器，用于完成玩游戏的控制
class GameControl:
    game1=JianDaoShiTouBu()     #第一个游戏对象（剪刀石头布）
    game2=BanZi()               #第二个游戏对象（榛子老虎鸡）

    resultList=[]               #用于保存所有的结果

    gameList=[game1,game2,DingZi()]      #游戏列表

    #getGameNameList服务，用于为调用者返回当前游戏列表中所有游戏的名称列表
    def getGameNameList(self):
        result=[]
        for item in self.gameList:
            result.append(item.getName())
        return result

    #beginPlay服务，用于开始玩用户所选择的游戏
    def beginPlay(self,gameNum):
        count = eval(input("请输入游戏局数"))
        while count > 0:
            self.gameList[gameNum-1].play()
            self.resultList.append(self.gameList[gameNum-1].getResult().copy())  #注意，可以试试去掉.copy()是什么样的。思考为什么
            count-=1

    #printStat服务，用于打印游戏的统计信息
    def printStat(self):
        print("现在是发成绩的时间了：")
        print("本次游戏情况：", self.resultList)
        listResult = []
        for item in self.resultList:
            listResult.extend(list(item.values()))

        print("主人获胜的次数是：", listResult.count("电脑胜"))
        print("siri获胜的次数是：", listResult.count("玩家胜"))
        print("平局的次数是：", listResult.count("平局"))